package com.docking.heylo.service;

import com.docking.heylo.dao.entity.Post;
import com.docking.heylo.dao.entity.PostComments;
import com.docking.heylo.web.dto.PostCommentsDto;
import com.docking.heylo.web.dto.PostDto;
import com.docking.heylo.web.dto.PushPostDto;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/***
 * 作品
 */
public interface IPostService {

    /***
     * 保存作品
     *
     * @param post
     */
    void savePost(Post post);

    /***
     * 发布作品
     *
     */
    void pushPost(PushPostDto dto);

    /***
     * 查看作品
     *
     * @param postDto
     * @return
     */
    PageInfo<Map<String, Object>> postByUserId(PostDto postDto);

    /***
     * 查看作品的评论
     *
     * @param postCommentsDto
     * @return
     */
    PageInfo<Map<String,Object>> postComments(PostCommentsDto postCommentsDto);

    /***
     * 发布评论
     *
     * @param postComments
     */
    void pushPostComment(PostComments postComments);


    Post selectByPrimaryKey(int id);

    /***
     * 查看用户最新的作品
     *
     * @param userId
     * @return
     */
    Post selectLastPostForUser(Integer userId);

    /***
     * 查看好友的作品
     *
     * @return
     */
    List<Map<String, Object>> my_buddy_post();

    /***
     * 获取作品面板
     *
     * @param id
     * @return
     */
    Map<String, Object> panel(Integer id);

    /**
     * 给作品点赞
     *
     * @param post
     */
    void like(PostDto post);


    boolean load();

    /***
     * 上滑
     *
     * @param post
     */
    void slidingUp(PostDto post);

    /***
     * 移除作品
     *
     * @param post
     */
    void remove(Post post);

    /***
     * 举报作品
     *
     * @param post
     */
    void report(PostDto post);

    /***
     * 举报作品评论
     *
     * @param post
     */
    void commentsReport(PostDto post);



}
